'\" t
.\"***************************************************************************
.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
.\" Copyright 1998-2010,2016 Free Software Foundation, Inc.                  *
.\"                                                                          *
.\" Permission is hereby granted, free of charge, to any person obtaining a  *
.\" copy of this software and associated documentation files (the            *
.\" "Software"), to deal in the Software without restriction, including      *
.\" without limitation the rights to use, copy, modify, merge, publish,      *
.\" distribute, distribute with modifications, sublicense, and/or sell       *
.\" copies of the Software, and to permit persons to whom the Software is    *
.\" furnished to do so, subject to the following conditions:                 *
.\"                                                                          *
.\" The above copyright notice and this permission notice shall be included  *
.\" in all copies or substantial portions of the Software.                   *
.\"                                                                          *
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
.\"                                                                          *
.\" Except as contained in this notice, the name(s) of the above copyright   *
.\" holders shall not be used in advertising or otherwise to promote the     *
.\" sale, use or other dealings in this Software without prior written       *
.\" authorization.                                                           *
.\"***************************************************************************
.\"
.\" $Id: captoinfo.1m,v 1.63 2024/03/23 20:37:25 tom Exp $
.TH captoinfo 1M 2024-03-23 "ncurses 6.5" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.\}
.el \{\
.ie t .ds `` ``
.el   .ds `` ""
.ie t .ds '' ''
.el   .ds '' ""
.\}
.SH NAME
\fB\%captoinfo\fP \-
convert a \fItermcap\fP description into a \fI\%term\%info\fP description
.SH SYNOPSIS
.B captoinfo
.RI [ tic-option ]
.RI [ file
\&.\|.\|.]
.P
.B "captoinfo \-V"
.SH DESCRIPTION
\fB\%captoinfo\fP translates terminal descriptions.
It looks in each given text \fIfile\fP for \fI\%termcap\fP entries and,
for each one found,
writes an equivalent \fI\%\%term\%info\fP description to the standard
output stream.
\fI\%termcap\fP \fBtc\fP capabilities translate to \fI\%\%term\%info\fP
\*(``\fBuse\fP\*('' capabilities.
.PP
If no \fIfile\fPs are specified,
\fB\%captoinfo\fP interprets the content of the environment variable
\fI\%TERMCAP\fP as a file name,
and extracts only the entry for the terminal named in the environment
variable \fITERM\fP from it.
If the environment variable \fI\%TERMCAP\fP is not set,
\fB\%captoinfo\fP reads
.IR \%/etc/termcap .
.PP
This utility is implemented as a link to \fB\%tic\fP(1M),
with the latter's
.B \-I
option implied.
You can use other \fB\%tic\fP options such as
.BR \-1 ,
.BR \-f ,
.BR \-v ,
.BR \-w ,
and
.BR \-x .
The \fB\-V\fP option reports the version of \fI\%ncurses\fP associated
with this program and exits with a successful status.
.SS "Translations from Nonstandard Capabilities"
\fB\%captoinfo\fP translates some obsolete,
nonstandard capabilities into standard
(SVr4/XSI Curses)
\fI\%\%term\%info\fP capabilities.
It issues a diagnostic to the standard error stream for each,
inviting the user to check that it has not mistakenly translated an
unknown or mistyped capability name.
.PP
.\" DWB 3.3 tbl requires the two junk "L" specifiers in the first row.
.TS
center;
Cb S  L  L
Cb Cb Cb Cb
Cb Cb C  Lb.
Name
Obsolete	Standard	Origin	\f(BIterminfo\fP capability
_
BO	mr	AT&T	enter_reverse_mode
CI	vi	AT&T	cursor_invisible
CV	ve	AT&T	cursor_normal
DS	mh	AT&T	enter_dim_mode
EE	me	AT&T	exit_attribute_mode
FE	LF	AT&T	label_on
FL	LO	AT&T	label_off
XS	mk	AT&T	enter_secure_mode
EN	@7	XENIX	key_end
GE	ae	XENIX	exit_alt_charset_mode
GS	as	XENIX	enter_alt_charset_mode
HM	kh	XENIX	key_home
LD	kL	XENIX	key_dl
PD	kN	XENIX	key_npage
PN	po	XENIX	prtr_off
PS	pf	XENIX	prtr_on
PU	kP	XENIX	key_ppage
RT	@8	XENIX	kent
UP	ku	XENIX	kcuu1
KA	k;	Tektronix	key_f10
KB	F1	Tektronix	key_f11
KC	F2	Tektronix	key_f12
KD	F3	Tektronix	key_f13
KE	F4	Tektronix	key_f14
KF	F5	Tektronix	key_f15
BC	Sb	Tektronix	set_background
FC	Sf	Tektronix	set_foreground
HS	mh	IRIX	enter_dim_mode
.TE
.PP
XENIX \fI\%termcap\fP had a set of extension capabilities,
corresponding to box drawing characters of CCSID
(\*(``code page\*('') 437,
as follows.
.PP
.TS
center;
cb cb
cb l .
\f(BItermcap\fP Name	Graphic
_
G2	upper left corner
G3	lower left corner
G1	upper right corner
G4	lower right corner
GR	tee pointing right
GL	tee pointing left
GU	tee pointing up
GD	tee pointing down
GH	horizontal line
GV	vertical line
GC	intersection
G6	double upper left corner
G7	double lower left corner
G5	double upper right corner
G8	double lower right corner
Gr	double tee pointing right
Gr	double tee pointing left
Gu	double tee pointing up
Gd	double tee pointing down
Gh	double horizontal line
Gv	double vertical line
Gc	double intersection
.\" TODO: There are about 40 box drawing code points in CCSID 437;
.\" were there no XENIX capabilities for the mixed single- and double-
.\" line intersections?
.\"
.\" TODO: GG doesn't seem to fit with the others; explain it.
GG	ACS magic cookie count
.TE
.PP
\fB\%captoinfo\fP composes single-line capabilities into an \fBacsc\fP
string,
and discards \fBGG\fP and double-line capabilities with a warning
diagnostic.
.PP
IBM's AIX has a \fI\%\%term\%info\fP facility descended from SVr1
\fI\%\%term\%info\fP,
but which is incompatible with the SVr4 format.
\fB\%captoinfo\fP translates the following AIX extensions.
.PP
.TS
center;
cb cb
l  l .
IBM	XSI
_
ksel	kslt
kbtab	kcbt
font0	s0ds
font1	s1ds
font2	s2ds
font3	s3ds
.TE
.PP
Additionally,
this program translates the AIX \fBbox1\fP capability to an \fBacsc\fP
string.
.PP
The HP-UX \fI\%\%term\%info\fP library supports two nonstandard
\fI\%\%term\%info\fP capabilities,
\fBmeml\fP (memory lock) and \fBmemu\fP (memory unlock).
\fB\%captoinfo\fP discards these with a warning message.
.SH FILES
.TP
.I /etc/termcap
default \fI\%termcap\fP terminal capability database
.SH PORTABILITY
X/Open Curses,
Issue 7 (2009) describes \fBtic\fP briefly,
but omits this program.
.PP
SVr4 systems provide \fB\%captoinfo\fP as a separate application from
\fBtic\fP.
Its
.B \-v
option does not accept a trace level argument
.IR n ;
repeat
.B \-v
.I n
times instead.
.PP
NetBSD does not provide this application.
.SH AUTHORS
Eric S. Raymond <esr@snark.thyrsus.com>
and
.br
Thomas E. Dickey <dickey@invisible\-island.net>
.SH SEE ALSO
\fB\%infocmp\fP(1M),
\fB\%tic\fP(1M),
\fB\%curses\fP(3X),
\fB\%terminfo\fP(5)
